<?php
/**
 * Created by PhpStorm.
 * User: wudiying
 * Date: 2020/2/17
 * Time: 上午1:55
 */

/**
 *
 * swoole之异步TCP服务器
 * task()函数 //投递异步任务
 * on('事件',function(){}) //异步执行的事件函数
 * finish()函数 //任务处理完成后结果
 *
 */

$host = '0.0.0.0';
$port = 8036;

$serv = new swoole_server($host,$port);


// 设置异步进程 进程工作数量
$serv->set(array('task_worker_num'=>4));

// 投递异步任务
$serv->on('receive',function ($serv,$fd,$from_id,$data){
    $task_id =  $serv->task($data);// 异步id

    echo "receive: 异步ID - $task_id\n";
});

// 处理异步任务

$serv->on('task',function ($serv,$task_id,$from_id,$data){
    echo "task:执行异步id: $task_id\n";
    $serv->finish("task:finsh : $data -> ok");

});

// 处理结果

$serv->on('finish',function ($serv,$task_id,$data){
    echo 'finish';
});


$serv->start();